package com.example.demo.Util;

import com.example.demo.VO.OrderInfoVo;
import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;
import dev.langchain4j.service.tool.ToolProvider;

import java.util.List;

@AiService( wiringMode = AiServiceWiringMode.EXPLICIT,
        chatModel = "openAiChatModel",
        streamingChatModel = "openAiStreamingChatModel",// 使用流式模型
        chatMemoryProvider = "chatMemoryProvider",// 使用对话记忆
        contentRetriever = "contentRetriever",//rag数据库检索对象
        tools = {"AiTools","toolProvider"}
)
public interface AiUtil extends ToolProvider {
    @SystemMessage("你是商城小助手，帮用户寻找合适的商品并引导用户下单")
    List<OrderInfoVo> chat(@MemoryId String MemoryId, @UserMessage @V("查询内容（自然语言文本）") String queryContent);
    @SystemMessage("你是商城小助手，帮用户寻找合适的商品并引导用户下单")
    List<OrderInfoVo> chat(@MemoryId String MemoryId,@UserMessage @V("查询内容（自然语言文本）") String queryContent,@UserMessage @V("最大返回结果数") String maxResultCount);
    @SystemMessage("你是商城小助手，帮用户寻找合适的商品并引导用户下单")
    String chat2(@MemoryId String MemoryId, @UserMessage @V("查询内容（自然语言文本）") String queryContent);

}
